package mws;

// --- 3. 一个具体的Mapper实现示例（词频统计）---
public class WordCountMapper implements MappingInterface {
//    方案一：使用“Context”对象进行收集（推荐）
//    这是最接近 Hadoop 等主流框架设计的方式。Mapper 不自己收集结果，而是将生成的每个键值对发送给一个由框架提供的“上下文”对象。

    @Override
    public void mapping(String inputLine, MapContext context) {
        // 1. 分割输入行成单词
        String[] words = inputLine.split("\\s+"); // 按空格分割

        // 2. 遍历每个单词，并输出 (word, 1)
        for (String word : words) {
            word = word.toLowerCase().replaceAll("[^a-z]", ""); // 简单清理
            if (!word.isEmpty()) {
                // 关键：不再自己维护Map，而是直接通过context输出
                context.send(word, String.valueOf(1));
            }
        }
    }
}